Simplify code with Scene Unique Names in Godot 3.5
https://www.youtube.com/watch?v=LKjPvtFopII
とても便利
ノードの階層構造を変更してもコードが壊れない
使い方
Unique Name を適応したいノードを右クリックして、Access as Scene Unique Name にチェックする
https://gyazo.com/d67a7eed0cb777aacb372a2caa188df0
これで、Scriptからは $"%ノード名"で参照できる。
onready var add_item_button := $"%AddItemButton"
いや、%ノード名だけでもいけるっぽい
HUDがブランチシーンで、その配下のユニークノード %ExpBarがあるとしたら、以下のようにアクセスできる
$HUD/%ExpBar
シーンヒエラルキーでノードを選択して、スクリプトエディタ上にドラッグアンドドロップすると、宣言文が自動的に記述されるので便利。今後使っていこう
https://gyazo.com/0182662505438de2d0fcffcddcecaf70
こちらの記事で紹介されている、set_unique_name_in_owner(true) で実行中にも対象ノードをユニークノードにできる
ただし、オーナーを設定する必要があり
code:gd
func _ready() -> void:
owner = get_parent()
set_unique_name_in_owner(true)
code:gd
add_child(level)
level.owner = self または level.owner = owner
level.set_unique_name_in_owner(true)